package dsk.demo.product.dao;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import dsk.demo.product.dto.ModelQueryDto;
import dsk.demo.product.dto.ProductQueryDto;
import dsk.demo.product.entity.ProductEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import dsk.demo.product.vo.ProductVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 *
 *
 * @author daishikun
 * @email 940798525@qq.com
 * @date 2022-09-17 09:09:41
 */
@Mapper
public interface ProductDao extends BaseMapper<ProductEntity> {
	IPage<ProductVo> getProductListByPage(Page<ProductVo> page, ProductQueryDto dto);

	IPage<ProductVo> getProductListByHoutaiPage(Page<ProductVo> page, ProductQueryDto dto);

    ProductVo getDetailById(Long id);

    Integer getCount(ProductQueryDto dto);

    List<ProductVo> searchByFoundString(String foundString);

    Long getMaxId();

    List<ProductVo> searchByCarModel(ModelQueryDto dto);

    Integer countByCarModel(@Param("keyWord") String keyWord,@Param("catalogId") Long catalogId);

    Long getIdByProductNo(String productNo);

    void updateList(@Param("productList") List<ProductEntity> exitProductList);

    List<ProductVo> searchFoundStringList(@Param("foundStringList") List<String> foundStringList);

    List<ProductVo> getRandomList(@Param("dto") ProductQueryDto dto);
}
